package com.peas.platform.module.icims.expenditure.expenses.adapter.repository.po;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.peas.platform.common.core.annotation.Comment;
import com.peas.platform.framework.mybatisplus.po.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import javax.validation.constraints.*;

// 报账单收款方信息
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "`tbl_expenditure_reimbursement_payee`")
public class ExpenditureReimbursementPayeePo extends BasePo {

    // 报账单ID
    // （报账单表）外键
    @Comment(value = "报账单ID")
    @TableField(value = "`expenditure_reimbursement_id`", jdbcType = JdbcType.BIGINT)
    private Long expenditureReimbursementId;

    // 收款类型
    // 收款单位、公务卡
    // 枚举取值:ExpenditureReimbursementPayeeType
    @Comment(value = "收款类型", enumType = "ExpenditureReimbursementPayeeType")
    @Size(max = 20, message = "收款类型不能超过20个字符")
    @TableField(value = "`payee_type`", jdbcType = JdbcType.VARCHAR)
    private String payeeType;

    // 收款单位ID
    // （收款单位表）外键
    @Comment(value = "收款单位ID")
    @TableField(value = "`expenditure_proceeds_id`", jdbcType = JdbcType.BIGINT)
    private Long expenditureProceedsId;

    // 收款单位名称
    @Comment(value = "收款单位名称")
    @Size(max = 200, message = "收款单位名称不能超过200个字符")
    @TableField(value = "`proceeds_company`", jdbcType = JdbcType.VARCHAR)
    private String proceedsCompany;

    // 收款银行
    @Comment(value = "收款银行")
    @Size(max = 200, message = "收款银行不能超过200个字符")
    @TableField(value = "`proceeds_bank`", jdbcType = JdbcType.VARCHAR)
    private String proceedsBank;

    // 收款账号
    @Comment(value = "收款账号")
    @Size(max = 200, message = "收款账号不能超过200个字符")
    @TableField(value = "`proceeds_account`", jdbcType = JdbcType.VARCHAR)
    private String proceedsAccount;

    // 公务卡持卡人用户ID
    // （用户公务卡信息表）外键
    @Comment(value = "公务卡持卡人用户ID")
    @TableField(value = "`expenditure_business_card_id`", jdbcType = JdbcType.BIGINT)
    private Long expenditureBusinessCardId;

    // 公务卡持卡人
    @Comment(value = "公务卡持卡人")
    @Size(max = 200, message = "公务卡持卡人不能超过200个字符")
    @TableField(value = "`business_card_name`", jdbcType = JdbcType.VARCHAR)
    private String businessCardName;

    // 公务卡开户银行
    @Comment(value = "公务卡开户银行")
    @Size(max = 200, message = "公务卡开户银行不能超过200个字符")
    @TableField(value = "`business_card_bank`", jdbcType = JdbcType.VARCHAR)
    private String businessCardBank;

    // 公务卡号
    @Comment(value = "公务卡号")
    @Size(max = 200, message = "公务卡号不能超过200个字符")
    @TableField(value = "`business_card_account`", jdbcType = JdbcType.VARCHAR)
    private String businessCardAccount;

    // 摘要
    @Comment(value = "摘要")
    @TableField(value = "`payee_summary`", jdbcType = JdbcType.CLOB)
    private String payeeSummary;

}
